package com.panshi.service.impl;


import com.panshi.config.ImgUtls;
import com.panshi.domain.*;
import com.panshi.domain.vo.PageBean;
import com.panshi.domain.vo.QueryVO;
import com.panshi.mapper.ZxArticleMapper;
import com.panshi.service.ZxArticleService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 * 服务实现类
 * 资讯㔿以审核通过
 * </p>
 *
 * @author zhy
 * @since 2020-07-29
 */
@Service
public class ZxArticleServiceImpl implements ZxArticleService {
    @Resource
    private ZxArticleMapper zxArticleMapper;

    /**
     * 资讯首页随机查询资讯
     *
     * @return
     */
    @Override
    public List<ArticleVo> articleList() {
        return zxArticleMapper.articleList();
    }

    /**
     * 咨询推荐，热点，最新查询
     *
     * @param typeVo
     * @return
     */
    @Override
    public List<ArticleVo> articleListCondition(TypeVo typeVo) {
        return zxArticleMapper.articleListCondition(typeVo);
    }

    /**
     * 首页（最新创作）和咨询类型（其它看点）查询
     *
     * @return
     */
    @Override
    public List<ArticleVo> articleRandomQuerySix() {
        return zxArticleMapper.articleRandomQuerySix();
    }

    /*
     * 资讯详情底部（相关推荐）
     * */
    @Override
    public List<ArticleVo> articleDetaiRecommendlList(TypeVo typeVo) {
        return zxArticleMapper.articleDetaiRecommendlList(typeVo);
    }



    /**
     * 根据ID查询资讯
     *
     * @param id
     * @return
     */
    @Override
    public ZxArticle getZxArticleBayId(Integer id) {
        return zxArticleMapper.getZxArticleBayId(id);
    }

    /**
     * 分类详情页面相关推荐
     *
     * @param id
     * @return
     */
    @Override
    public List<ZxArticle> zxTypeBy(Integer id) {
        return zxArticleMapper.zxTypeBy(id);
    }

    /**
     * 新增资讯
     *
     * @param zxUncheck
     * @return
     */
    @Override
    public int addZxArticle(ZxUncheck zxUncheck) {
        zxUncheck.setPhotoPath( ImgUtls.getimgurl(zxUncheck.getContent()));//截取文章的第一个图片地址
        return zxArticleMapper.addZxArticle(zxUncheck);
    }


    /**
     * 资讯软删除
     *
     * @param zxArticle
     * @return
     */
    @Override
    public int updataStatus(ZxArticle zxArticle) {
        return zxArticleMapper.updataStatus(zxArticle);
    }

    /**
     * 根据类型查询资讯
     *
     * @param pageBean
     * @return
     */
    @Override
    public List<ZxArticle> getZxArticleBayType(PageBean pageBean) {
        pageBean.setCurrentPage((pageBean.getCurrentPage()-1)*pageBean.getPageSize());
        return zxArticleMapper.getZxArticleBayType(pageBean);
    }


    /**
     * 用户删除
     *
     * @param id
     * @return
     */
    @Override
    public int userDelete(Integer id) {
        return zxArticleMapper.userDelete(id);
    }

    /**
     * 热门资讯
     *
     * @return
     */
    @Override
    public List<ZxArticle> hotZxArticle(PageBean pageBean) {
        pageBean.setCurrentPage((pageBean.getCurrentPage()-1)*pageBean.getPageSize());
        return zxArticleMapper.hotZxArticle(pageBean);
    }

    /**
     * 大家都在看
     *
     * @return
     */
    @Override
    public List<ZxArticle> everyoneLook() {
        return zxArticleMapper.everyoneLook();
    }

    /**
     * 专家推荐
     *
     * @return
     */
    @Override
    public List<ZxArticle> expertRecommend() {
        return zxArticleMapper.expertRecommend();
    }

    /**
     * 查询资讯页类型
     *
     * @return
     */
    @Override
    public List<ThType> queryType() {
        return zxArticleMapper.queryType();
    }

    /**
     * 阅读数
     *
     * @param id
     * @return
     */
    @Override
    public int read(Integer id) {
        return zxArticleMapper.read(id);
    }

    /**
     * 收藏数
     *
     * @param id
     * @return
     */
    @Override
    public int collect(Integer id) {
        return zxArticleMapper.collect(id);
    }

    /**
     * 评论数
     *
     * @param id
     * @return
     */
    @Override
    public int comment(Integer id) {
        return zxArticleMapper.comment(id);
    }

    /**
     * 维护搜索表数据
     *
     * @return
     */
    @Override
    public int addZxArticleSearch(ZxArticle zxArticle) {
        return zxArticleMapper.addZxArticleSearch(zxArticle);
    }

    /**
     * 上架资讯分页总数
     *
     * @return
     */
    @Override
    public int count(QueryVO queryVO) {
        return zxArticleMapper.count(queryVO);
    }

    /**
     * 资讯分页总数
     *
     * @return
     */
    @Override
    public int countSun() {
        return zxArticleMapper.countSun();
    }

    /**
     * 根据资讯类型查询分页总数
     *
     * @param tid
     * @return
     */
    @Override
    public int typeCount(Integer tid) {
        return zxArticleMapper.typeCount(tid);
    }

    /**
     * 类型页面的相关推荐
     *
     * @param tid
     * @return
     */
    @Override
    public List<ZxArticle> zxTypeCorrelation(Integer tid) {
        return zxArticleMapper.zxTypeCorrelation(tid);
    }


    /**
     * 查询全部资讯
     *
     * @return
     */
    @Override
    public List<ZxArticle> pageZxList(QueryVO queryVO) {
      queryVO.setPage((queryVO.getPage()-1)*queryVO.getLimit());
        return zxArticleMapper.pageZxList(queryVO);
    }

    /**
     * 最新资讯
     *
     * @param pageBean
     * @return
     */
    @Override
    public List<ZxArticle> newestArticle(PageBean pageBean)
    {
        pageBean.setCurrentPage((pageBean.getCurrentPage()-1)*pageBean.getPageSize());
        return zxArticleMapper.newestArticle(pageBean);
    }


    /**
     * 用户收藏资讯
     * @param zxArticle
     * @return
     */
    @Override
    public int addCollect(ZxArticle zxArticle) {
        return zxArticleMapper.addCollect(zxArticle);
    }

    /**
     * 查询收藏表返回 （0可以收藏，1已收藏）
     * @return
     */
    @Override
    public int queryUserId(ZxArticle zxArticle) {
        return zxArticleMapper.queryUserId(zxArticle);
    }
}


